package com.shrimpcolo.johnnytam.innerclass.thread;

/**
 * 
 * @author Johnny Tam
 * 
 *         使用匿名内部类 创建 Thread， Runnable
 * 
 */
public class TestDemo {

	public static void main(String[] args) {
		// v0.1 使用继承Thread类的方式 再实例化
		// CommonThread comThread = new CommonThread();
		// comThread.start();

		// CommonThread comThread02 = new CommonThread();
		// comThread02.start();

		// v0.2.1 使用匿名内部类的形式创建仔细所需要的实例
		// Thread innerThread = new Thread() {
		//
		// public void run() {
		// for (int i = 0; i < 5; i++) {
		// try {
		// System.out.println("i平方是： " + i*i);
		// sleep(500);
		// } catch (InterruptedException e) {
		// e.printStackTrace();
		// }
		// }
		// }
		// };
		// innerThread.start();

		// v0.2.2 使用匿名内部类的形式创建仔细所需要的实例
		// new Thread() {
		// public void run() {
		// for (int i = 0; i < 5; i++) {
		// try {
		// System.out.println("i的三次方是： " + i * i * i);
		// sleep(500);
		// } catch (InterruptedException e) {
		// e.printStackTrace();
		// }
		// }
		// }
		// }.start();

		// v0.3 匿名内部类用在 Runnable中
		// //v0.3.1普通类用法
		// CommonRunnable comRunnable = new CommonRunnable();
		// Thread thread = new Thread(comRunnable);
		// thread.start();
		//
		// //v0.3.2普通类用法
		// CommonRunnable11 comRun11 = new CommonRunnable11();
		// Thread thread11 = new Thread(comRun11);
		// thread11.start();

		// //v0.3.3 匿名内部类实现Runnable的各种需求
		// Runnable innerRunnable01 = new Runnable() {
		//
		// @Override
		// public void run() {
		// for(int i = 0; i < 5; i++) {
		// System.out.println("i = " + i);
		//
		// try {
		// Thread.sleep(1000);
		// } catch (InterruptedException e) {
		// e.printStackTrace();
		// }
		// }
		// }
		//
		// };
		// Thread thread3_1 = new Thread(innerRunnable01);
		// thread3_1.start();

		// v0.3.4 匿名内部类实现Runnable的各种需求
		Thread thread3_2 = new Thread(new Runnable() {

			@Override
			public void run() {
				for (int i = 0; i < 5; i++) {
					System.out.println("i的平方是： " + i * i);

					try {
						Thread.sleep(1000);
					} catch (InterruptedException e) {
						e.printStackTrace();
					}
				}
			}

		});
		thread3_2.start();

	}

}
